A high bandwidth gigabit Ethernet (“GigE”) controller may implement interrupt coalescing (IC), wherein the controller attempts to group multiple data packets, received in a short period of time, into a single interrupt. Interrupt coalescing may reduce the interrupt processing overhead for the central processing unit (“CPU”). However, IC may also introduce added latency for packets to be processed by the CPU as a result of grouping multiple interrupts into a single delayed interrupt service request.
Conventional IC may be implemented based on several different methods. For example, a first method includes a cyclical interrupt service request to processor. A second method includes a packet to packet delay triggered interrupt. Regarding the first method, a decrement timer may be set to expire after a certain delay from the arrival of a first packet that arrives after the last interrupt service request. For example, the timer may be pre-configured to “40” with a fixed decrement step of “1”. After receiving the first packet, the time starts decrementing from “40” to “0” with a fixed decrement step of “1.” If this occurs in a in a quality of service (“QOS”) environment, whereby different priorities may be assigned to data packets, the first method may essentially decrement with little emphasis placed on the priority of the received packet or packets. Regarding the second method, when a first packet is received, the decrement timer will reset to, for example, “5” and start to count down. If the next packet is received before the timer counts down to zero, then the timer will be reset and start to count down from “5” again, regardless of any priority assigned to the packet in a QOS system. Both of these methods may be deployed to achieve some level of interrupt coalescing in a GigE controller. However, these methods may not be effective if, for example, packets with different priority levels need to be grouped together. Such a condition may result in high priority packets being delayed throughout the scheduled period of interrupt coalescing, which may reduce the effectiveness of QOS.